home *** CD-ROM | disk | FTP | other *** search
/ PCMania 73 / PCMania CD73_1.iso / sharewar / varios / partial / LIB / ARTICULO.013 < prev    next >
Text File  |  1996-01-06  |  6KB  |  129 lines

  1.               /* TECNICAS DE PROTECCION / DESPROTECCION */
  2.  
  3. Se inicia esta sección con la intención de dar a conocer técnicas para
  4. crackear programas, juegos, etc o incluso para proteger nuestros programas
  5. contra estas. 
  6. Intentaré dar a conocer todos los conocimientos que estén a mi humilde 
  7. alcance, de todos modos, todos aquellos crackers con ganas de luchar por
  8. la libertad de información de estas u otras técnicas, que contribuyan con 
  9. la revista [ es una orden! ;-) ].
  10.  
  11. Bueno ya hemos hablado demasiado, al tema!
  12.  
  13. CLAVES SENCILLAS
  14. ----------------
  15.  
  16. Vamos a comenzar con la desprotección de claves sencillas, ( antes de todo y
  17. aunque sea un poco inocente por mi parte un crack para todos aquellos que lo
  18. desconozcan es un programa realizado por un cracker destinado a bular la
  19. protección de otro programa.) como ibamos deciendo vamos a desproteger
  20. claves sencillas, es decir, programas que no tienen ningún tipo de protección
  21. excepto esta clave.
  22.  
  23. (Por otro lado para la gente que lo desconozca existen muchos otros tipos
  24. de protecciones como los discos llave, que en teoría no se pueden copiar
  25. pero aquí aprenderemos a copiarlos, las mochilas o llaves hardware que se
  26. conectan al puerto serie o paralelo, los programas que se descomprimen en
  27. ejecución ( aprenderemos hacerlos en la sección de virus ) y a continuación
  28. se vuelven a comprimir, y todos aquellos que imaginen o la mezcla de todos
  29. a la vez, teniendo en cuenta que cada uno tiene su incoveniente oportuno ).
  30.  
  31. Bueno sigamos, es que a veces me lio demasiado ;-), imaginar que tenemos un
  32. programa que nada más inicializarlo te pide la clave de acceso ( recordar que
  33. estamos hablando de programas normalmente antiguos y sin ningún otro tipo de
  34. protección ) normalmente como nosotros no la conocemos introduciremos una y
  35. nos saldrá el mensaje de acceso denegado y el programa finalizará .
  36. Lo más práctico sería trazar el programa, es decir, utilizar un debugger para
  37. encontrar donde nos piden la introducción de la clave, utilizando puntos de
  38. ruptura, ejecuciones hasta determinadas líneas, etc, hasta dar con la clave y
  39. cambiarla o saltarla. Pero bueno este procedimiento se deja para el próximo
  40. número.
  41.  
  42. Bueno entonces ejecutamos el programa y nos pide una clave:
  43.  
  44.   CLAVE:______________
  45.  
  46.   COMPARA SI CLAVE ES DIFERENTE, MAYOR, MENOR, ETC, QUE OTRA VARIABLE
  47.   ESPECIFICADA, SINO ES ASI SALTA A EXIT, POR EL CONTRARIO CONTINUA
  48.   EL PROGRAMA CORRECTAMENTE.
  49.  
  50. El cracker lo que debe hacer es coger un debugger y seguir
  51. el código en ensamblador del programa ( un consejo es mejor que cuanto
  52. antes conozcas el lenguaje ensamblador pues es vital en esta sección,
  53. en la de virus, etc, de todos modos tienes el curso de ensamblador en la
  54. revista para inicializarte en este lenguaje), hasta que localicemos el
  55. salto incondicinal. ( usamos este procedimiento por ahora! )
  56.  
  57. Por ejemplo
  58.  
  59.     Clave: Se pide clave
  60.  
  61.     CMP PASSWORD,'CLAVE'
  62.     JNZ SALIR
  63.     JMP CLAVE_CORRECTA
  64.  
  65. SALIR: Finaliza programa
  66. CLAVE_CORRECTA:   Continuar              
  67.                                          
  68.  
  69. La instrucciones anteriores no tienen porqué ser idénticas, todo depende
  70. de como realice la comparación y el salto incondicional que utilice el
  71. programa en cuestión, en este caso particular CMP ( compara dos variables
  72. restando una de la otra ), JNZ ( mira si el FLAG DE ZERO está a cero, es
  73. decir si la resta de las dos variables da 0, si es así, quiere decir que son
  74. iguales y por tanto esta instrucción que significa saltar sino cero,
  75. no se ejecuta), por último JMP significa saltar a la dirección especificada. 
  76.  
  77. Entonces con esto ya está chupado reventar el programa, cogemos un debugger
  78. y buscamos estas u otras instrucciones que nos indiquen donde se nos pide
  79. introducir la clave, entonces ya unicamente tenemos que NOPear el programa,
  80. es decir donde se encuentra la instrucción de salto colocamos la instrucción
  81. en ensamblador NOP ( que significa no operación ) y de esta manera
  82. al introducir cualquier clave el programa continuará correctamente.
  83. Para no tener que hacer esto continuamente cogemos el debugger y una vez
  84. localizado el salto incondicional apuntamos el codigo hexadecimal que se
  85. encuentra a su izquierda ( por ejemplo en el Turbo Debugger ), es
  86. recomendable coger código hexadecimal además de instrucciones anteriores y
  87. posteriores para después poder localizarlo mejor.
  88. Entonces cogemos un editor hexadecimal buscamos la cadena del salto
  89. incondicional y lo sustituimos por 90 que es el código hexadecimal de NOP,
  90. entonces guardamos los cambios y el programa ya está crackeado.
  91.  
  92. El supuesto ejemplo anterior sería algo así:
  93.                                  .....
  94.                                 
  95.        3dh 25h 42h        CMP PASSWORD,'CLAVE'
  96.        75  02h            JNZ SALIR
  97.        ....                     JMP CLAVE_CORRECTA
  98.                                  .....
  99.  
  100.  
  101. Entonces cambiamos por NOP.
  102.  
  103.        3dh 25h 42h        CMP PASSWORD,'CLAVE'
  104.        90            NOP
  105.        90                       NOP
  106.        EBh 10h                JMP CLAVE_CORRECTA
  107.  
  108. ( Se dará cuenta que ponemos dos NOP ya que son dos bytes lo que componen
  109. la instrucción a sustituir)
  110.  
  111. y por arte de magia el programa ya está crackeado ( quedaría una cadena
  112. hexadecimal por ejemplo como 3d25429090 .... )
  113.  
  114. Para el primer número ya está bien no?, recordar que este procedimiento es
  115. viejo y actualmente los metodos de protección y desprotección son muchísimo
  116. más sofisticados ( aunque quién sabe! ), de todos modos he visto oportuno
  117. comenzar con esta técnica para aquellos que se inician en este mundillo.
  118.  
  119. Una cosa más en el directorio REGALOS\CRACKER teneis un programa llamado
  120. clave.exe realizado aposta para practicar esta técnica ( y además
  121. su sencillo código en C ). De todos modos el próximo número lo crackearemos
  122. para practicar esta teoría en la práctica y continuaremos avanzando en este
  123. mundillo.
  124.  
  125. Feliz Crackeo!
  126.  
  127.                                                                 HANDLER
  128.  
  129.